Future Methods এবং তার ব্যবহার

Computer Programming - এপেক্স (Apex) Apex এবং Asynchronous Processing (Apex and Asynchronous Processing) |
224
224

Future Methods হলো Apex-এ ব্যবহৃত একটি Asynchronous Processing পদ্ধতি, যা দীর্ঘমেয়াদি কাজ বা বড় ডেটাসেট প্রসেস করতে ব্যবহৃত হয়। Future Methods আলাদা ট্রানজ্যাকশনে কাজ সম্পন্ন করে, যা Governor Limits এড়াতে সাহায্য করে এবং ব্যাকগ্রাউন্ডে কাজ চালায়। Future Methods সাধারণত ওয়েব সার্ভিস কলআউট, বড় ডেটাসেট প্রসেসিং, এবং এমন কোনো প্রসেসে ব্যবহৃত হয় যা অবিলম্বে সম্পন্ন হওয়ার প্রয়োজন নেই।


Future Method এর বৈশিষ্ট্য

  1. Asynchronous Processing: ব্যাকগ্রাউন্ডে কাজ সম্পন্ন হয় এবং ব্যবহারকারীর ইন্টারফেসে অতিরিক্ত লোড পড়ে না।
  2. Governor Limits এড়ানো: আলাদা ট্রানজ্যাকশনে কাজ সম্পন্ন করায় DML এবং SOQL অপারেশনের গভর্নর লিমিট এড়ানো যায়।
  3. @future Annotation: Future Method-কে @future অ্যানোটেশন দিয়ে ডিফাইন করতে হয়।
  4. Callouts Support: Future Method HTTP কলআউট বা API কলের জন্য ব্যবহৃত হয়, কারণ এটি অন্য ট্রানজ্যাকশনে কাজ করে।

Future Method ডিক্লারেশন

Future Method লিখতে @future অ্যানোটেশন ব্যবহার করতে হয় এবং Method অবশ্যই static হতে হবে। Future Method-এ primitive ডেটা টাইপ (যেমন Integer, String, বা List, Set, Map) পাস করা যায়।

@future
public static void methodName(parameters) {
    // Method logic
}

Future Method এর উদাহরণ

উদাহরণ ১: ডেটা প্রসেসিং এর জন্য Future Method

নিচের উদাহরণে updateAccountIndustry নামে একটি Future Method তৈরি করা হয়েছে, যা Account অবজেক্টের Industry ফিল্ড আপডেট করে।

public class FutureExample {
    @future
    public static void updateAccountIndustry(Set<Id> accountIds) {
        List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id IN :accountIds];
        for (Account acc : accounts) {
            acc.Industry = 'Technology';
        }
        update accounts;
    }
}
  • @future: Future Method ঘোষণা করেছে।
  • Parameters: Set<Id> প্যারামিটার ব্যবহার করা হয়েছে, যা Account রেকর্ডের আইডি সংরক্ষণ করে।
  • Usage: updateAccountIndustry Future Method ব্যবহার করে Account রেকর্ডের Industry ফিল্ড আপডেট করা হয়েছে।

মেথড কল করা

Set<Id> accountIds = new Set<Id>{'0011j00000XXXXXXX', '0011j00000YYYYYYY'};
FutureExample.updateAccountIndustry(accountIds);

উদাহরণ ২: Callouts এর জন্য Future Method

Future Method ব্যবহার করে Callouts করা যায়, যা সাধারণত অন্য ট্রানজ্যাকশনে সম্পন্ন হয়। নিচের উদাহরণে একটি Future Method performHttpCallout কলআউট তৈরি করা হয়েছে, যা একটি ওয়েব সার্ভিসে HTTP কলআউট করে।

public class CalloutExample {
    @future(callout=true)
    public static void performHttpCallout() {
        Http http = new Http();
        HttpRequest request = new HttpRequest();
        request.setEndpoint('https://api.example.com/data');
        request.setMethod('GET');

        HttpResponse response = http.send(request);
        System.debug('Response: ' + response.getBody());
    }
}
  • @future(callout=true): Future Method-এ কলআউট সমর্থন করতে callout=true সেট করা হয়েছে।
  • Http Callout: HttpRequest এবং HttpResponse ব্যবহার করে একটি HTTP GET কলআউট করা হয়েছে।

Future Method এর ব্যবহারের ক্ষেত্র

Future Method ব্যবহার করার কিছু সাধারণ পরিস্থিতি:

  1. HTTP Callouts: অন্য সিস্টেমে HTTP কলআউট করার জন্য Future Method ব্যবহার করা হয়, কারণ এটি অন্যান্য ট্রানজ্যাকশনে সম্পন্ন হয় এবং গভর্নর লিমিট এড়ানো যায়।
  2. বড় ডেটাসেট প্রসেসিং: বড় ডেটাসেট প্রসেস করতে চাইলে Future Method আলাদা ট্রানজ্যাকশনে প্রসেসিং চালাতে পারে, যা গভর্নর লিমিটের সীমা এড়াতে সহায়ক।
  3. লং-রানিং প্রসেসিং: লং-রানিং প্রসেস ব্যাকগ্রাউন্ডে চালানোর জন্য ব্যবহার করা হয়, যেমন বড় ব্যাচে ডেটা আপডেট করা বা বিশ্লেষণ চালানো।
  4. উচ্চতর রিসোর্স ব্যবহার: ট্রানজ্যাকশন টাইমআউট এড়ানোর জন্য এবং অতিরিক্ত রিসোর্স ব্যবহার করার জন্য Future Method ব্যবহার করা হয়।

Future Method এর সীমাবদ্ধতা

Future Method ব্যবহারে কিছু সীমাবদ্ধতা রয়েছে:

  1. Primitive Data Types Only: Future Method-এ শুধুমাত্র primitive data type পাস করা যায়, যেমন Integer, String, List, Set, Map ইত্যাদি।
  2. Chaining Future Methods Not Allowed: একটি Future Method থেকে আরেকটি Future Method কল করা যায় না।
  3. No Return Value: Future Method কোনো মান রিটার্ন করতে পারে না।
  4. Transaction Context Limitation: একটি ট্রানজ্যাকশনে সর্বাধিক ৫০টি Future Method কল করা যেতে পারে।

Future Method এবং Queueable Apex এর তুলনা

বৈশিষ্ট্যFuture MethodQueueable Apex
চেইনিংসমর্থিত নয়সমর্থিত
Primitive Limitationশুধুমাত্র primitive ডেটা টাইপ পাস করা যায়Custom এবং Complex data types সমর্থন করে
Return Valueরিটার্ন ভ্যালু সমর্থিত নয়সমর্থিত নয়
Usage Flexibilityকম ফ্লেক্সিবলবেশি ফ্লেক্সিবল

সারসংক্ষেপ

  • Future Methods হলো Apex-এ ব্যবহৃত একটি Asynchronous Processing পদ্ধতি, যা @future অ্যানোটেশন দিয়ে ঘোষণা করা হয়।
  • ব্যবহার ক্ষেত্র: বড় ডেটাসেট, HTTP কলআউট, এবং লং-রানিং প্রসেসিং এর ক্ষেত্রে Future Method ব্যবহৃত হয়।
  • সীমাবদ্ধতা: Future Method শুধুমাত্র primitive data type পাস করতে পারে এবং একে চেইনিং করা যায় না।

Future Methods ব্যবহার করে Salesforce প্ল্যাটফর্মে ব্যাকগ্রাউন্ডে কার্যকরী ডেটা প্রসেসিং, কলআউট, এবং বড় ডেটাসেট পরিচালনা সম্ভব হয়, যা ব্যবহারকারীর অভিজ্ঞতা এবং অ্যাপ্লিকেশনের কার্যকারিতা উন্নত করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion